package IO;
import java.io.*;
import java.nio.charset.Charset;

/**
 * du:
 * Eclipse 的<Java Editor><Text Editor>都有字符集设置问题。
 *   项目--->Properties--->Info--->Text file encoding:GB18030
 *                                                   utf-8  /iso-8859-1等
 *  可用它进行 特定字符集的文本文件的 文件制作/验证查看
 *  
 * 本程序目的： 1）用上述editor,编辑一个utf-8的文本文件：《sunpeng.txt》
 *            2）运行该程序，以UTF-8读取该文件，再以另一种字符集（gb2312）写入目标文件
 *            3）用上述editor,打开生成的目标文件，可验证查看其字符集。
 *   
 *   《utf-8文件》 --->用utf-8读---unicode----用gb2312写----->《gb2312文件》
 *   
 * @author@Ascent 061028 孙鹏
 *  */
public class Test {

	public static void main(String[] args) throws IOException {
		
		
		/**
		 *完成了任意编码格式的转换
		 * 
		 */
		Charset charset=Charset.forName("UTF-8");
		Charset charset1=Charset.forName("gb2312");
		
		Charset charset16=Charset.forName("UTF-16");
		//读
        //读
//		FileInputStream fs=new FileInputStream("research\\io\\sunpeng\\sunpeng.txt");
		FileInputStream fs=new FileInputStream("research\\io\\sunpeng\\dutest1.txt");  //UTF-8的文件
		InputStreamReader ir=new InputStreamReader(fs,charset);//用UTF-8 读 解码
		BufferedReader br=new BufferedReader(ir);
		String a1=br.readLine(); //先读一行。---a1    是通用的Unicode字符集。
		
		//写
//		FileOutputStream fs1=new FileOutputStream("research\\io\\sunpeng\\songyi.txt");     //"c:\\temp\\songyi.txt"
		FileOutputStream fs1=new FileOutputStream("research\\io\\sunpeng\\dutest2.txt");
		OutputStreamWriter fo1=new OutputStreamWriter(fs1,charset1); //用gb2312 写 重新编码写入文本文件。
		BufferedWriter bw1=new BufferedWriter(fo1);                  //可试验：改为charset。将目标Charset字符集对象，修改为utf-8
		PrintWriter pw1=new PrintWriter(bw1);
		
		while(a1!=null) {
//			 pw1.write(a1);    //a1写入pw1     .write(String);    Write a string. 不换行
			 pw1.println(a1);  //              .pringln(String); Print a String and then terminate the line.
			 pw1.flush();
			 a1=br.readLine(); //再读一行。---a1
			
		}
	//缺关闭管道。
		pw1.close();
	}
}

